/* ** $VER: BootGauge 0.9 (20 Apr 1996) ** ** ** © 1995/1996 Timo C. Nentwig ** all rights reserved ! ** ** Tcn@techbase.in-berlin.de ** ** ====================================== ** ** ** Language: ** ¯¯¯¯¯¯¯¯ ** ** Program is compiled by SAS/C ** ** ** Purpose: ** ¯¯¯¯¯¯¯ ** ** Display gauge bar during booting ** ** ** Requirements: ** ¯¯¯¯¯¯¯¯¯¯¯¯ ** ** · AmigaOS 2+ ** · gtlayout.library ** mod_Gauge's quit gadget doch GLOBAL, SIG_KILL an Main_proc schicken ! IDCMP_DISKREMOVE scheint nicht beachted zu werden ... Req() funktioniert scheinbar nicht mit "%s" ... siehe failed commands split into program and bootgauge.library #define BOLD \33[1m etc. Use Req() also instead of printf() ///" Bugs" ** ** Bugs: ** ¯¯¯¯ ** ** · Pictures (BitPlanes ?) sehen falsch aus. [weber] ** · Palette der Pics -> Scr's palette ** ** · scheinbar kann man per CLOSEWINDOW das Module nicht brauchbar abschießen ** ein Module kann ich nicht selbst abschießen ... ?!?! ** ** /// ///" ToDo" ** ** ToDo: ** ¯¯¯¯ ** ** · log file/verbose ? ** · if block handling ** · Die scheiß Gauge bar muß doch irgendwie auf 100% (nicht 101 und nicht 99) zu bringen sein ** ** · /rkm/devices/audio/audio_8svx.c ** · Patches/Patch_Libs aus /Yak211/*.(c|h) ** ** ** -- -- Maybe: -- -- ** ** |· Farben selbt einstellbar (nicht aus der Palette, sondern selbt einstellbar !!): SetRGB32( &(BG_scr -> ViewPort), 0, r, g, b); ** |· Farben aus File lesbar: GetRGB32() or LoadRGB32() ** /// ///" Notes" ** ** Notes: ** ¯¯¯¯¯ ** ** · TABs = 4 ** · requires IEEE math library ** · Uses the MagicWB colors ** ** Program has been testet with: · AmigaGuardian ** ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ · memwatch.lib (SAS/C link library) ** · OS3.1 only ! ** /// ** -------------------------------------- ** ** History: ** ¯¯¯¯¯¯¯ ** /// " 0.1" ** ** >>>>>>>>>>> V0.1 ** ¯¯¯¯ ** 15 Sep 1995 first runable version ** /// /// " 0.2" ** ** >>>>>>>>>>> V0.2 ** ¯¯¯¯ ** 17 Sep 1995 add: background image ** add: -gc/-gaugecolor ** add: background pattern ** add: -sc/-screencolor ** add: -nosr/-noscreenraster ** add: -test ** cng: background image ** add: -cv/-viewcommand ** add: FAILED_OPENSEQ ** /// /// " 0.3" ** ** >>>>>>>>>>> V0.3 ** ¯¯¯¯ ** 20 Okt 1995 add: check: skip, failat, path ** cng: set "BootGauge ..." before everything in titlebar ** add: if/endif handling ** cng: image handling: now using little img and put it a grid ** add: window's x/y size is configureable ** add: IText and gauge bar adapts automatically to window's size ** add: gauge bar scale ** add: -nopat/-nopattern ** add: -wc/-windowcolor ** add: -nosl/-noscale ** add: -gbc/-gaugebackcolor ** add: subprg: -getid/-getmodeid ** fix: check if BG_win is too large for BG_scr ** add: c = tolower(c); ** fix: if handling now correct ** fix: cmd handling now correct (skip/notitle, failat ...) ** add: skip/lab handling ** cng: BootGauge -> BG (prg-intern) ** cng: image ** cng: palette, using now 32bit palette (SA_Colors32) ** add: -nodb/-nodebug ** cng: -no* int -> BOOL ** ** 01 Nov 1995 add: -emod/-ecsmode ** add: NO_COMMENT ** ** >>>>>>>>>>> Initial Release (AmiNet) ** ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ** /// /// " 0.4" ** ** >>>>>>>>>>> V0.4 ** ¯¯¯¯ ** 11 Nov 1995 cng: requester(str, var); (var argument) ** fix: no esc signs in the titlebar anymore ** cng: remove comments from titlebar string ** add: -btxt/-boottext ** add: struct TextAttr font = {...} ** add: -notb/-notitlebar ** add: subprg: FreeSpace ** add: -fsx/freespacex ** add: -fsy/freespacey ** add: -fsc/freespacecolor ** add: -fsx/freespacexs ** add: -fstc/freespacetypecolor ** add: -fsfc/freespacefypecolor ** ** 12 Nov 1995 add: subprg: MemSpace ** add: -msx/memspacex ** add: -msy/memspacey ** add: -msc/memspacecolor ** add: -msx/memspacexs ** add: -mstc/memspacetypecolor ** add: -msfc/memspacefontcolor ** ** >>>>>>>>>>>> Beta 1 ** ¯¯¯¯¯¯ ** rem: dead assignments in MemSpace.c ** add: dummy, tmp perc value in MemSpace.c ** ** 13 Nov 1995 cng: title is now also set on BG_pat ** add: menu: about, check marks: ms/fs/titlebar/quit ** add: BG is now quitable (menu/quit) ** add: menu shortcuts ** add: default is "sys:s/amiga-startup" ** add: IDCMP_DISKINSERTED ** cng: minior changes ** cng: intern variable & config options ** rem: scr_pattern ** cng: new structure of source ** add: -btxtfp/-boottextfrontpen ** ** 16 Nov 1995 add: IDCMP_DISKREMOVED ** add: MS_putvalue(); ** rem: FAILED_MEMSPACE ** ** 17 Nov 1995 cng: overworked DC ** add: -dcfp/-displaycmdfontpen ** add: -dcx/-displaycmdx ** add: -dcy/-displaycmdy ** rem: -getid/-getmodeid/subprg:GetModeID(); ** cng: bootitext is centered between gauge bar and upper win frame ** cng: complete CLI commands (eg. no alternative) ** cng: Process_Seq() -> DoSeq() ** fix: bg started with -noms/-nofs and during running started by menu -> open at y = 0 (titlebar) ** /// /// " 0.5" ** ** >>>>>>>>>>> V0.5 ** ¯¯¯¯ ** 01 Dec 1995 cng: BG_win now using gtlayout ** add: 3D frame for BG_win ** cng: many minior adjustments (variables, options ...) ** cng: all is now using gtlayout ** cng: now using WA_BackFill ** cng: uses much less mem ** fix: bootgauge didn't free all memory ** cng: completely overworked (more sources) ** rem: many options (in cause of gtlayout) ** ** 06 Dec 1995 add: ListCmd() ** add: LC_putvalue() ** add: LC_ShutDown() ** ** 07 Dec 1995 add: CreateNode() ** fix: LC_putvalue now works ** ** 09 Dec 1995 cng: -winpen (background color) now for all windows ** add: check if OS3+ is available ** add: SysInfo () ** ** 12 Dec 1995 add: OpenLib() [Olaf Barthel] ** fix: func = (VOID *) ( (* ( (APTR *)(((struct MenuItem *) n )+1) ) ) ); ** cng: BG_OpenWindow() -> GaugeBar() ** cng. BG_CloseWindow() -> GB_ShutDown() ** cng: on/off: gauge bar is now extern ** ** 13 Dec 1995 add: IDCMP handle for all windows ** add: routine to get builtin memory size ** cng: MemSpace now featuring also gauge bars ** add: SysInfo: CPU, FPU ** cng: Now using a GST file (wow !, fast !) ** cng: compiling with option: optschedule ** ** 17 Dec 1995 cng: finished source splitting ** add: SysInfo: Chip set ** fix: little layout correction in MemSpace() ** add: TimeInfo() ** ** 18 Dec 1995 add: CPUInfo() ** cng: menu updated (TimeInfo, CPUInfo) and sorted (alphabetic) ** cng: cleaned up unused/old/unrequired variables ** cng: names of some variables ** ** 19 Dec 1995 add: menu item for GaugeBar() ** cng: now use normal instead of checking menus ** ** 20 Dec 1995 cng: bgTimeInfo.c now also displays the seconds ** /// /// " 0.6" ** ** >>>>>>>>>>> V0.6 ** ¯¯¯¯ ** 22 Dec 1995 cng: Requester() accepts now arguments ** cng: MemSpace runs in its own task ** ** 23 Dec 1995 add: SetClickDrive() ** cng: overworked a bit and made safer ** cng: overworked OpenScr(), screen is now really public ** fix: TimeInfo(), e.g. 22:1:5 instead of 22:01:05 ** fix: didn't recognize end of if-blocks ** cng: don't copy more than 2 empty signs into line[] "ab c" -> "ab c" ** cng: titlebar format and use sprintf() for making title_text ** rem: nline[] ** cng: line[]: no comments, no '\n' ** fix: -noreq now takes no effect to Menu/About ** fix: problem with comments (ESC sign was shown) ** ** 25 Dec 1994 add: -drvclick ** add: -nobborder; BlackBorder() ** add: now it is possible to use a config file if available ** cng: overworked DoSeq(): use now fgets(), line is now case-sensitiv (for rename, ...) ** add: lower() ** add: upper() ** add: check result of system(), display error, warn, ... in requester ** add: count of system()'s failures are displayed in DisplayCmd ** ** >>>>>>>>>>> Beta 1 ** ¯¯¯¯¯¯ ** 28 Dec 1995 add: InitBackFill(); ** cng: scr's depth defineable ** cng: default scr depth 3, use MagicWB colors ** cng: DriPens[] (e.g. active title bar text is now white) ** cng: overworked Menu_About() a little bit ** rem: variable for sub prgs: si, ms, fs, ti, dc, gb, ci; now check if window is open/task is running ** rem: menu item for sub programs and titlebar, was simply nonsense ** cng: workaround: if titlebar is enabled MoveWindow() [MS, CI, FS] don't overwrite title bar ** cng: now just execute path and alias ** add: -failat, default = 21; ** cng: names of sub programs (and its variables[windows, handle, open_*]), now called "modules" ** cng: names of all files (bg_* and mod_*) ** cng: better structure ** cng: screen title now for all windows ** cng: window title of mod_Gauge ** fix: if scr's title bar was off, title bar of mod_Text wasn't updated ** ** 29 Dec 1995 cng: general config structure ** fix: several minior bugs, didn't free some bytes ** add: dri_pens[] are now defineable ** cng: updated evaluateCfg/Args(), now you can configure everything ;-) ** ** 30 Dev 1995 cng: Menu now in win_Main ** cng: win_Main is now the default active window ** cng: Screen title bar text now defineable ** ** ** ** 01 Jan 1996 cng: better infos than just "OpenLibs()" failed ** ** 03 Jan 1996 fix: [Yak:] ClickDrive() didn't free (2 * 56) = 112 bytes ** add: Window's pos is saved automatically ** add: POS config file for modules ** cng: move bg's confgi files in a own dir ** ** 05 Jan 1996 add: Exists() ** add: ByteCopy() ** add: MakeDir() ** cng: SaveWinPos() now writes also in env: ** cng: now mod_Devs supports again IDCMP_DISKINSERTED ** ** >>>>>>>>>>> Beta 2 ** ¯¯¯¯¯¯ ** 08 Jan 1996 cng: mod_Gauge: CloseGadget just quit mod_Gauge not whole app ** cng: IDs now in the files where they are used (removed from GST) and using enum{} ** cng: mod_Time: now all gadgets are updated ** cng: module's gadgets are build by for () [code optimized] ** ** 09 Jan 1996 add: Font is now defineable ** ** 13 Jan 1996 cng: removed mod_Mem task, mod_Mem now runs directly again ** fix: forgot WA_NewLookMenus, TRUE, in win_Main ** add: Menu item: Wait [e.g. for pos windows] ** ** 14 Jan 1996 cng: now using reqtools.library for requesters ** ** 16 Jan 1996 add: much more error messages for system() ** cng: Requester() -> rprintf () ** cng: improved rprintf () using va_list ** /// /// " 0.7" ** ** >>>>>>>>>>> V0.7 ** ¯¯¯¯ ** 19 Jan 1996 add: SetMousePos() ** ** 25 Jan 1996 fix: SetMousePos(): used Pubscreen -> Workbench poped up ** fix: SetMousePos() didn't free some bytes ** fix: many minior fixes, e.g. files/devices/libs may not have been closed ** ** 26 Jan 1996 cng: rprintf() call wait pointer ** add: SetPointerAll() ** add: SetTitlePointer() ** cng: scr_Main is SA_Behind and first switched to front after opening win_Main ** add: use of DriveClick() is defineable ** add: use of BlackBorder() is defineable ** rem: setmouse is now always set and not longer defineable ** rem: requester cannot be disabled anymore ** cng: config structure overworked ** ** 27 Jan 1996 rem: mod_CPU, SysInfo.library can only be used if Executive is running ** ** 05 Feb 1996 add: fgetsf(), formated replacement for fgets() ** cng: mod_Text: WARNs, FAILs, ERRORs, OTHERs are white colored ** ** 06 Feb 1996 add: parseline() ** fix: strpos() ** cng: DoSeq() -> ExecuteSeq() ** cng: ExecuteSeq() rewritten for more compatibility ** add: CheckResult() ** cnd: lower() -> str2lwr() ** cnd: upper() -> str2upr() ** ** 08 Feb 1996 fix: fgetsf(): isalpha (...) -> if (c != ' ' && c != '\t') ** fix: strpos(): UBYTE -> BYTE, e.g. "\"" wasn't handled correctly ** cng: improved strpos(): finds now specified occurance of keyword and not just the first ** fix: parseline(): UBYTE -> BYTE, e.g. "\"" wasn't handled correctly ** fix: parseline(): now handle commands in quotation marks correct, e.g. "c:my command" ** add: more error msg for failed commands ** ** 09 Feb 1996 cng: GetFastMemSize()/GetChipMemSize() -> GetSizeMem() ** ** 10 Feb 1996 cng: strpos(): smaller and improved speed a bit ** ** 13 Feb 1996 cng: SetupConfig() -> SetDefaults() ** cng: default is now sys:s/system-startup ** cng: GetDay(), GetDate(), GetTime() -> GetDDT() ** ** 14 Feb 1996 fix: Problems with urouhack and DrawFrame() [borders were hand-calculated, not win -> Border???] ** cng: string functions are not limited to STR_LEN anymore ** ** 17 Feb 1996 cng: GetDDT() now uses strftime(): time is completely configurable ** ** 19 Feb 1996 cng: strcmp (str2lwr (...), ...) replaced with stricmp (...) ** rem: str2lwr () ** rem: str2upr () ** ** 20 Feb 1996 rem: substr(): replaced with strmid () ** fix: memory leak in GetDDT () ** ** 23 Feb 1996 fix: all memory leaks ! ** ** 24 Feb 1996 add: Say(): speak a text using narrator.device ** add: cfg -> say.* ** ** 24 Feb 1996 add: strwrd() ** ** 25 Feb 1996 cng: fopen(), fclose(), fgetc, ... -> Open(), Close(), FGetC, ... ** ** 01 Mar 1996 fix: sequence wasn't unlocked if user canceled program ** ** 02 Mar 1996 cng: made again a little bit safer ** cng: several minior changes ** ** 09 Mar 1996 add: DisplayBeep(), Say() if an error happens ** cng: very much very little changes in the whole code ** add: Macro: Div() ** add: CreateBitMap() ** add: DeleteBitMap() ** ** 16 Mar 1996 cng: mod_Sys(): code reduced ** cng: mod_Sys(): runs in its own process ** add: cfg -> mod.Sys.highlabel ** ** 17 Mar 1996 add: About window ** ** 18 Mar 1996 add: Quit menu item for mod_Sys ** cng: mod_Sys: optimized ** ** 22 Mar 1996 add: mod_Sys is quitted by pressing '\033' = escape ** ** 24 Mar 1996 add: Menu item: Reboot ** add: elementary Req() ** ** 26 Mar 1996 cng: window snapping defineable ** cng: snap window only if its position has changed ** ** 29 Mar 1996 cng: Shell arguments are now evaluated by RDArgs() ** cng: Prototype is now defined in SCOptions ** ** 30 Mar 1996 rem: picture support [at least for the windows] ** cng: improved GetMemSize(), now using MEMF_* ** fix: mod_Mem works again ** rem: Say(), narrator.device support ** ** >>>>>>>>>>> Beta 1 ** ¯¯¯¯¯¯ ** /// /// " 0.8" ** ** >>>>>>>>>>> V0.8 ** ** 02 Apr 1996 cng: mod_Devs now also runs in its own process ** ** 07 Apr 1996 cng: overworked all modules ** rem: percent couting in titlebar of mod_Gauge & mod_Text ** cng: process creating/removing much safer ** add: security inquiry for ColdReboot () by Req () ** [cng: Prototypes are now introduced by "PROTO", rewrote DICE's MakeProto] ** add: Req () replacing RPintF() ** add: 2 MagicWB images for Req () ** /// /// " 0.9" ** ** >>>>>>>>>>> V0.9 ** ** 09 Apr 1996 cng: all modules now work in their own process !!! ** cng: mod_Gauge's quit gadget doesn't quit program but module only ** ** 11 Apr 1996 add: delay option for testing ** ** 12 Apr 1996 add: timer.device process updating considering modules every second ** add: menu item: NewShell ** ** 13 Apr 1996 rem: titlecmd ** add: isempty () ** cng: FGetsF (): more flexible and improved ** cng: rewrote EvalPrefs(): shorter and faster ** ** 15 Apr 1996 fix: SingleCLI: STRING_KIND string wasn't terminated ** ** >>>>>>>>>>> Beta 1 ** ¯¯¯¯¯¯ ** ** 20 Apr 1996 [add: elementary Installer script] ** ** 21 Apr 1996 cng: internal failat removed, DOS failat used ** ** 23 Apr 1996 [cng: overworked guide: much more flexible now] ** ** 29 Apr 1996 cng: more info if OpenScr() failed (WA_ErrorCode) ** ** 11 May 1996 add: mod_Sys: MMU ** ** >>>>>>>>>>> Beta 2 ** ¯¯¯¯¯¯ ** ** >>>>>>>>>>> Second Release (AmiNet) ** ¯¯¯¯¯¯¯¯¯¯¯¯¯¯ ** /// ** */